/**
 * Copyright &copy; 2019-2022 <a href="https://gitee.com/rit/zx-pm">zx-pm</a> All rights reserved.
 */
package com.zx.pm.modules.zx.entity;

import java.util.Date;
import java.util.List;

import org.hibernate.validator.constraints.Length;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zx.pm.common.persistence.DataEntity;
import com.zx.pm.common.utils.excel.annotation.ExcelField;

/**
 * 项目流转单Entity
 * @author forest
 * @version 2019-01-06
 */
public class Lzd extends DataEntity<Lzd> {
	
	private static final long serialVersionUID = 1L;
	private String proNo;		// 项目编号
	private String buyUnit;		// 采购单位
	private String proName;		// 项目名称
	private String executeSteps;// 执行流程
	private String tenderWay;	// 招标方式
	private String proPic;		// 项目负责人
	private String tenderProducer;		// 标书制作人
	private String proPerformer;		// 项目执行人
	private String fundsResources;		// 资金来源
	private String noticeMedia;			// 公告媒体
	private String noticeMediaContent;
	private String tenderProcedure;		// 标书程序
	private String proClassify;			// 项目分类
	private String demonstration;		// 论证
	private String[] demonstrationArray;
	private Date endTime;		// 标书完成时间
	private Keyword keyword; 	// 关键字
	private Cgml cgml;  		// 项目分类
	private TenderRequire tRequire; //标书制作注意事项
	private String budgetType; // 项目预算
	private Double budgetMoney; //预算金额
	private Double limitMoney; // 限价金额
	private String serveMoney; //服务费用
	private String percent; // 下浮的百分比
	private String serveType;// 服务方式 
	private String isSubpackage;// 是否分包标段
	private String subpackageCount; //分包标段个数
	private String operateFalg; 
	private String proStatus;
	private Double cost; // 造价费
	private Double quota; // 定额
	private Double tenderPrice; //标书售价
	private String proParamFile; // 项目参数
	private String lzdFlag; // 项目流转状态
	private String expDate; // 项目保质期
	private String lzdStatus;
	private String tenderFlag;
	private String makeTenderBy;
	private String auditor;
	private List<TenderSection> sectionList;
	private TenderSection ts;
	private Integer fileCount;
	private String tenderWayContent;
	private List<ProExperts> payList;
	private String noticeAudit;
	private String reportAudit;
	private Integer payCount;
	private Integer zpeCount;
	private Integer auditFileCount;
	private Date bidOpenDate;
	private String trashPro;
	private String trashContent;
	private String resetLzdId;
	private Integer restartCount;
	private String customType;
	private String timeLimit;
	private String finishStatus;
	private List<ProSupplier> psList;
	public Lzd() {
		super();
	}

	public Lzd(String id){
		super(id);
	}

	@Length(min=1, max=100, message="项目编号长度必须介于 1 和 100 之间")
	public String getProNo() {
		return proNo;
	}

	public void setProNo(String proNo) {
		this.proNo = proNo;
	}
	
	

	public void setBuyUnit(String buyUnit) {
		this.buyUnit = buyUnit;
	}
	

	public void setProName(String proName) {
		this.proName = proName;
	}
	
	
	public void setExecuteSteps(String executeSteps) {
		this.executeSteps = executeSteps;
	}
		

	public void setTenderWay(String tenderWay) {
		this.tenderWay = tenderWay;
	}
	

	public void setProPic(String proPic) {
		this.proPic = proPic;
	}
	
	

	public void setTenderProducer(String tenderProducer) {
		this.tenderProducer = tenderProducer;
	}
	
	
	public void setProPerformer(String proPerformer) {
		this.proPerformer = proPerformer;
	}
	
	

	public void setFundsResources(String fundsResources) {
		this.fundsResources = fundsResources;
	}
	
	@Length(min=0, max=100, message="公告媒体长度必须介于 0 和 100 之间")
	public String getNoticeMedia() {
		return noticeMedia;
	}

	public void setNoticeMedia(String noticeMedia) {
		this.noticeMedia = noticeMedia;
	}
	
	 

	public void setTenderProcedure(String tenderProcedure) {
		this.tenderProcedure = tenderProcedure;
	}
	
	@Length(min=0, max=100, message="项目分类长度必须介于 0 和 100 之间")
	public String getProClassify() {
		return proClassify;
	}

	public void setProClassify(String proClassify) {
		this.proClassify = proClassify;
	}
	
	@Length(min=0, max=100, message="论证长度必须介于 0 和 100 之间")
	public String getDemonstration() {
		return demonstration;
	}

	public void setDemonstration(String demonstration) {
		this.demonstration = demonstration;
	}
	
	

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
	
	
	public Keyword getKeyword() {
		return keyword;
	}

	public void setKeyword(Keyword keyword) {
		this.keyword = keyword;
	}

	public Cgml getCgml() {
		return cgml;
	}

	public void setCgml(Cgml cgml) {
		this.cgml = cgml;
	}

	public TenderRequire gettRequire() {
		return tRequire;
	}

	public void settRequire(TenderRequire tRequire) {
		this.tRequire = tRequire;
	}

	public String getOperateFalg() {
		return operateFalg;
	}

	public void setOperateFalg(String operateFalg) {
		this.operateFalg = operateFalg;
	}

	public String getProStatus() {
		return proStatus;
	}

	public void setProStatus(String proStatus) {
		this.proStatus = proStatus;
	}

	public String getBudgetType() {
		return budgetType;
	}

	public void setBudgetType(String budgetType) {
		this.budgetType = budgetType;
	}


	public void setBudgetMoney(Double budgetMoney) {
		this.budgetMoney = budgetMoney;
	}

	public String getServeMoney() {
		return serveMoney;
	}

	public void setServeMoney(String serveMoney) {
		this.serveMoney = serveMoney;
	}

	public String getServeType() {
		return serveType;
	}

	public void setServeType(String serveType) {
		this.serveType = serveType;
	}

	public String getIsSubpackage() {
		return isSubpackage;
	}

	public void setIsSubpackage(String isSubpackage) {
		this.isSubpackage = isSubpackage;
	}

	public String getSubpackageCount() {
		return subpackageCount;
	}

	public void setSubpackageCount(String subpackageCount) {
		this.subpackageCount = subpackageCount;
	}

	public void setLimitMoney(Double limitMoney) {
		this.limitMoney = limitMoney;
	}


	public void setCost(Double cost) {
		this.cost = cost;
	}

	public Double getQuota() {
		return quota;
	}

	public void setQuota(Double quota) {
		this.quota = quota;
	}

	public String getPercent() {
		return percent;
	}

	public void setPercent(String percent) {
		this.percent = percent;
	}

	public String getProParamFile() {
		return proParamFile;
	}

	public void setProParamFile(String proParamFile) {
		this.proParamFile = proParamFile;
	}

	public String getLzdFlag() {
		return lzdFlag;
	}

	public void setLzdFlag(String lzdFlag) {
		this.lzdFlag = lzdFlag;
	}

	public String[] getDemonstrationArray() {
		return demonstrationArray;
	}

	public void setDemonstrationArray(String[] demonstrationArray) {
		this.demonstrationArray = demonstrationArray;
	}

	public String getNoticeMediaContent() {
		return noticeMediaContent;
	}

	public void setNoticeMediaContent(String noticeMediaContent) {
		this.noticeMediaContent = noticeMediaContent;
	}


	public void setTenderPrice(Double tenderPrice) {
		this.tenderPrice = tenderPrice;
	}

	public String getExpDate() {
		return expDate;
	}

	public void setExpDate(String expDate) {
		this.expDate = expDate;
	}

	public String getLzdStatus() {
		return lzdStatus;
	}

	public void setLzdStatus(String lzdStatus) {
		this.lzdStatus = lzdStatus;
	}

	public String getTenderFlag() {
		return tenderFlag;
	}

	public void setTenderFlag(String tenderFlag) {
		this.tenderFlag = tenderFlag;
	}

	public String getMakeTenderBy() {
		return makeTenderBy;
	}

	public void setMakeTenderBy(String makeTenderBy) {
		this.makeTenderBy = makeTenderBy;
	}

	public List<TenderSection> getSectionList() {
		return sectionList;
	}

	public void setSectionList(List<TenderSection> sectionList) {
		this.sectionList = sectionList;
	}

	public TenderSection getTs() {
		return ts;
	}

	public void setTs(TenderSection ts) {
		this.ts = ts;
	}

	public Integer getFileCount() {
		return fileCount;
	}

	public void setFileCount(Integer fileCount) {
		this.fileCount = fileCount;
	}

	public String getAuditor() {
		return auditor;
	}

	public void setAuditor(String auditor) {
		this.auditor = auditor;
	}

	public String getTenderWayContent() {
		return tenderWayContent;
	}

	public void setTenderWayContent(String tenderWayContent) {
		this.tenderWayContent = tenderWayContent;
	}

	public List<ProExperts> getPayList() {
		return payList;
	}

	public void setPayList(List<ProExperts> payList) {
		this.payList = payList;
	}

	public String getNoticeAudit() {
		return noticeAudit;
	}

	public void setNoticeAudit(String noticeAudit) {
		this.noticeAudit = noticeAudit;
	}

	public String getReportAudit() {
		return reportAudit;
	}

	public void setReportAudit(String reportAudit) {
		this.reportAudit = reportAudit;
	}

	public Integer getPayCount() {
		return payCount;
	}

	public void setPayCount(Integer payCount) {
		this.payCount = payCount;
	}

	public Integer getZpeCount() {
		return zpeCount;
	}

	public void setZpeCount(Integer zpeCount) {
		this.zpeCount = zpeCount;
	}

	public Integer getAuditFileCount() {
		return auditFileCount;
	}

	public void setAuditFileCount(Integer auditFileCount) {
		this.auditFileCount = auditFileCount;
	}

	public Date getBidOpenDate() {
		return bidOpenDate;
	}

	public void setBidOpenDate(Date bidOpenDate) {
		this.bidOpenDate = bidOpenDate;
	}

	public String getTrashPro() {
		return trashPro;
	}

	public void setTrashPro(String trashPro) {
		this.trashPro = trashPro;
	}

	public String getTrashContent() {
		return trashContent;
	}

	public void setTrashContent(String trashContent) {
		this.trashContent = trashContent;
	}

	public String getResetLzdId() {
		return resetLzdId;
	}

	public void setResetLzdId(String resetLzdId) {
		this.resetLzdId = resetLzdId;
	}

	public Integer getRestartCount() {
		return restartCount;
	}

	public void setRestartCount(Integer restartCount) {
		this.restartCount = restartCount;
	}

	@Length(min=0, max=100, message="标书制作人长度必须介于 0 和 100 之间")
	public String getTenderProducer() {
		return tenderProducer;
	}

	@Length(min=0, max=100, message="项目执行人长度必须介于 0 和 100 之间")
	public String getProPerformer() {
		return proPerformer;
	}

	public void setCustomType(String customType) {
		this.customType = customType;
	}

	@Length(min=0, max=100, message="招标方式长度必须介于 0 和 100 之间")
	public String getTenderWay() {
		return tenderWay;
	}
	
	
	//======================excel导入的字段=======================
	
	private String exContact;
	private String exBuyerPhone;
	private String exProEndDate;
	private String payWay;
	
	@Length(min=1, max=255, message="项目名称长度必须介于 1 和 255 之间")
	@ExcelField(title="项目名称", align=1, sort=1)
	public String getProName() {
		return proName;
	}

	@Length(min=0, max=100, message="采购单位长度必须介于 0 和 100 之间")
	@ExcelField(title="采购单位", align=1, sort=2)
	public String getBuyUnit() {
		return buyUnit;
	}
	
	
	@Length(min=0, max=100, message="项目负责人长度必须介于 0 和 100 之间")
	@ExcelField(title="项目负责人", align=1, sort=3)
	public String getProPic() {
		return proPic;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="标书完成时间", align=1, sort=4)
	public Date getEndTime() {
		return endTime;
	}


	@Length(min=0, max=100, message="执行流程长度必须介于 0 和 100 之间")
	@ExcelField(title="执行流程", align=1, sort=5, dictType="execute_steps")
	public String getExecuteSteps() {
		return executeSteps;
	}



	@Length(min=0, max=100, message="资金来源长度必须介于 0 和 100 之间")
	@ExcelField(title="资金来源", align=1, sort=6, dictType="funds_resources")
	public String getFundsResources() {
		return fundsResources;
	}
	
	@ExcelField(title="项目预算", align=1, sort=7)
	public Double getBudgetMoney() {
		return budgetMoney;
	}

	@ExcelField(title="客户分类", align=1, sort=8, dictType="custom_type")
	public String getCustomType() {
		return customType;
	}

	@Length(min=0, max=100, message="标书程序长度必须介于 0 和 100 之间")
	@ExcelField(title="标书程序", align=1, sort=9 , dictType="tender_procedure")
	public String getTenderProcedure() {
		return tenderProcedure;
	}

	@ExcelField(title="最高限价", align=1, sort=10)
	public Double getLimitMoney() {
		return limitMoney;
	}


	@ExcelField(title="造价费", align=1, sort=11)
	public Double getCost() {
		return cost;
	}

	@ExcelField(title="标书售价", align=1, sort=12)
	public Double getTenderPrice() {
		return tenderPrice;
	}

	@ExcelField(title="联系人", align=1, sort=13)
	public String getExContact() {
		return exContact;
	}

	@ExcelField(title="采购电话", align=1, sort=14)
	public String getExBuyerPhone() {
		return exBuyerPhone;
	}

	@ExcelField(title="完工期", align=1, sort=15)
	public String getExProEndDate() {
		return exProEndDate;
	}

	@ExcelField(title="付款方式", align=1, sort=16)
	public String getPayWay() {
		return payWay;
	}

	public void setExContact(String exContact) {
		this.exContact = exContact;
	}

	public void setExBuyerPhone(String exBuyerPhone) {
		this.exBuyerPhone = exBuyerPhone;
	}

	public void setExProEndDate(String exProEndDate) {
		this.exProEndDate = exProEndDate;
	}

	public void setPayWay(String payWay) {
		this.payWay = payWay;
	}

	public String getTimeLimit() {
		return timeLimit;
	}

	public void setTimeLimit(String timeLimit) {
		this.timeLimit = timeLimit;
	}

	public String getFinishStatus() {
		return finishStatus;
	}

	public void setFinishStatus(String finishStatus) {
		this.finishStatus = finishStatus;
	}

	public List<ProSupplier> getPsList() {
		return psList;
	}

	public void setPsList(List<ProSupplier> psList) {
		this.psList = psList;
	}

	
}